﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
//class Time
//{
//public:
//	Time(int hour)
//		:_hour(hour)
//	{
//		cout << "Time()" << endl;
//	}
//private:
//	int _hour;
//};
//class Date
//{
//public:
//	Date(int& xx,int year=1, int month=1, int day=1,int x=1)
//		:_year(year)
//		,_month(month)
//		,_day(day)
//		,a(x)
//		,ref(xx)
//		,_t(x)
//	{
//	}
//	void Print() const
//	{
//		cout << _year << "-" << _month << "-" << _day << endl;
//	}
//private:
//	int _year;
//	int _month;
//	int _day;
//	Time _t;
//	const int a;
//	int& ref;
//};
//int main()
//{
//	int i = 0;
//	Date d1(i);
//	d1.Print();
//	return 0;
//}
//class Time
//{
//public:
//	Time(int hour)
//		:_hour(hour)
//	{
//		cout << "Time()" << endl;
//	}
//class Time
//{
//public:
//	Time(int hour)
//		:_hour(hour)
//	{
//		cout << "Time()" << endl;
//	}
//private:
//	int _hour;
//};
//class Date
//{
//public:
//	void Print() const
//	{
//		cout << _year << "-" << _month << "-" << _day << endl;
//	}
//private:
//	// 注意这⾥不是初始化，这⾥给的是缺省值，这个缺省值是给初始化列表的
//// 如果初始化列表没有显⽰初始化，默认就会⽤这个缺省值初始化
//	int _year=2024;
//	int _month=7;
//	int _day=16;
//	Time _t=1;
//	const int a=1;
//	int* tmp = (int*)malloc(12);
//};
//int main()
//{
//	int i = 0;
//	Date d1;
//	d1.Print();
//	return 0;
//}
//class A
//{
//public:
//	 A(int a)
//		:_a1(a)
//	{
//	}
//	void print()
//	{
//		cout << _a1 << _a2 << endl;
//	}
//private:
//	int _a1= 1;
//	int _a2 = 2;
//};
//int main()
//{
//	A a = 1;
//	a.print();
//	return 0;
//}
//class B
//{
//public:
//	B()
//	{
//		++a;
//	}
//	B(const B& c)
//	{
//		++a;
//		cout << "kaobe" << endl;
//	}
//	int rmid()
//	{
//		//⾮静态的成员函数，可以访问任意的静态成员变量和静态成员函数
//		mid();
//		return a;
//	}
//	static int mid()
//	{
//		//只能访问静态的
//		return a;
//	}
//private:
//	//类里面声明
//	static int a;
//	int g = 0;
//};
////类外面初始化
////突破类域就可以访问静态成员
//int B::a=0;
//int main()
//{
//	B b;
//	cout << b.mid() << endl;
//	B d(b);
//	cout << d.mid() << endl;
//}
//class B;
//class A
//{
//	friend void func(const A& aaa,const B& bbb);
//private:
//	int a1;
//	int a2;
//};
//class B
//{
//	friend void func(const A& aaa, const B& bbb);
//private:
//	int b1;
//	int b2;
//};
//void func(const A&aaa,const B&bbb)
//{
//	cout << aaa.a1 << aaa.a2 << endl;
//	cout << bbb.b1 << bbb.b2 << endl;
//}
//int main()
//{
//	A aa;
//	B bb;
//	func(aa, bb);
//}
//class A
//{
//private:
//	static int _k;
//	int _h = 1;
//public:
//	class B // B默认就是A的友元
//	{
//	public:
//			void foo(const A & a)
//		{
//			cout << _k << endl; //OK
//			cout << a._h << endl; //OK
//		}
//	};
//};
//int A::_k = 1;
//int main()
//{
//	cout << sizeof(A) << endl;
//	A::B b;
//	A aa;
//	A 
//	b.foo(aa);
//	return 0;
//}
//class A
//{
//public:
//	A(int year, int month, int day)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	 }
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//int main()
//{
//	//无类型名
//	A(2024, 7, 18);
//}
class A
{
public:
	A(int a=100)
		:_a(a)
	{
		cout << "A(int a)" << endl;
	}
	A(const A& aa)
		:_a(aa._a)
	{
		cout << "A(const A & aa)" << endl;
	}
	~A()
	{
		cout << "~A()" << endl;
	}
private:
	int _a=20;
};
A func1()
{
	A c;
	A d(c);
	return d;
}
int main()
{
	//A a;
	//A b(a);
	func1();
}